package com.fuchuang.seckillsystem.service;


import com.fuchuang.seckillsystem.dto.UserQuery;
import com.fuchuang.seckillsystem.entity.MyUserDetails;
import com.fuchuang.seckillsystem.entity.User;

import java.util.Map;

public interface IUserService {
    
    /**
     * 通过用户名称获取springSecurity的登录对象
     *
     * @param username 用户名称
     * @return 安全框架需要的对象
     */
    MyUserDetails findUserDetailsByUsername(String username);
    
    /**
     * 用户注册
     *
     * @param user 用户信息
     */
    void register(User user);
    
    /**
     * 用户更新
     *
     * @param user 更新后的用户对象
     */
    void update(User user);
    
    /**
     * 查询所有用户信息
     *
     * @return 秒杀系统所有用户信息
     */
    Map<String, Object> getAllUser(UserQuery userQuery);
    
    /**
     * 获取用户信息
     *
     * @param userId 用户id
     * @return 用户个人信息
     */
    User getUser(Integer userId);
    
}
